import java.util.Arrays;
import java.util.Comparator;

public class Test {
//    public static void main(String[] args) {
//        int[] nums = new int[]{-2, 1, -3, 4, -1, 2, 1, -5, 4};
//        System.out.println(maxSubArray(nums));
//    }
//
//    public static int maxSubArray(int[] nums) {
//        if (nums.length == 1) {
//            return nums[0];
//        }
//        int sum = Integer.MIN_VALUE;
//        int count = 0;
//        for (int i = 0; i < nums.length; i++) {
//            count += nums[i];
//            sum = Math.max(sum, count); // 取区间累计的最大值（相当于不断确定最大子序终止位置）
//            if (count <= 0) {
//                count = 0; // 相当于重置最大子序起始位置，因为遇到负数一定是拉低总和
//            }
//        }
//        return sum;
//    }
//
//    public static int findMax(int[] num) {
//        int count = 0;
//        int sum = 0;
//        if (num.length == 1) {
//            return num[0];
//        }
//        for (int i = 0; i < num.length; i++) {
//            count += num[i];
//            if (count == 0) {
//                count = 0;
//            }
//            sum = Math.max(sum, count);
//        }
//        return sum;
//    }


    public static void main(String[] args) {
        Goods1[] m = new Goods1[3];

        m[0] = new Goods1("car3", 121);
        m[1] = new Goods1("car1", 125);
        m[2] = new Goods1("car2", 121);
        Arrays.sort(m, new Comparator<Goods1>() {
            //指明商品比较大小的方式:照价格从低到高排序,若价格相同则比较姓名
            @Override
            public int compare(Goods1 o1, Goods1 o2) {
                if (o1.getPrice() == o2.getPrice()) {
                    return o1.getName().compareTo(o2.getName());
                }
                return Double.compare(o1.getPrice(), o2.getPrice());
            }
        });

        for (Goods1 goods : m) {
            System.out.println(goods.toString());
        }
    }
}

class Goods1 {

    private String name;
    private double price;

    public String getName() {
        return name;
    }

    public double getPrice() {
        return price;
    }

    public Goods1(String name, double price) {
        this.name = name;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Goods{" + price + "=" + price +
                "  name='" + name + '\'' +
                '}';
    }

}
